package com.sltx.controller;

import com.sltx.controller.base.BaseController;
import com.sltx.service.QypjService;
import com.sltx.service.Qyyjservice;
import com.sltx.util.PageData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

@Controller
@RequestMapping(value = "/qyyj")
public class QyyjController extends BaseController {
    @Autowired
    private Qyyjservice qyyjservice;

    @Autowired
    private QypjService qypjService;
    //普通用户查询所有企业
    @RequestMapping("/getNum")
    @ResponseBody
    public Object getredList(){
        List<Object> result = new ArrayList<>();
        PageData pd = this.getPageData();
        String updata = (String) pd.get("Updata");
        pd.put("Updata",updata);
        result.add(qyyjservice.getredAll(pd));
        result.add(qyyjservice.getorangeAll(pd));
        result.add(qyyjservice.getyellowAll(pd));
        return result;
    }

    //查询此企业是否为违规企业
    @RequestMapping("/Violations")
    @ResponseBody
    public Object getweigui() {
        PageData pd = this.getPageData();
        String entName = (String) pd.get("entName");
        List<? extends Object> getweigui = qyyjservice.getweigui(entName);
        return getweigui;
    }


    //预警企业筛选条件展示（管理员可修改）
    @RequestMapping("/condition")
    @ResponseBody
    public Object Condition(){
        PageData pd = this.getPageData();
        Map<String, Object> map = qyyjservice.getCondition(pd);
        return map;
    }

    //用户筛选条件删除（管理员可修改）
    @RequestMapping("/delect")
    @ResponseBody
    public void delect(){
        PageData pd = this.getPageData();
        //删除条件
        qyyjservice.delect(pd);
    }
    //用户筛选条件添加（管理员可修改）
    @RequestMapping("/Inster")
    @ResponseBody
    public void inster(){
        PageData pd = this.getPageData();
        qyyjservice.inster(pd);
    }


    //查询预警表单数据 （管理员）
    //@RequestMapping("/list")
    @ResponseBody
    public Object getList(){
        PageData pd = this.getPageData();
        Map<String,Object> map =  qyyjservice.getList(pd);
        return map;
    }

    //查询预警表单数据
    @RequestMapping("/list")
    @ResponseBody
    public Object getYujing(){
        PageData pd = this.getPageData();
        Map<String,Object> map = qyyjservice.getYujing(pd);
        return map;
    }
    //升级或降级此企业预警等级(企业名，预警等级，等级 管理员)
    @RequestMapping("/grade")
    @ResponseBody
    public Object getGrade(){
        PageData pd = this.getPageData();
        //根据企业名，预警等级，等级修改此企业的预警等级
        //如果传过来的是红色则无法升级
        String yujing = (String) pd.get("yujing");
        //传过来升级（1）降级（2）
        String update = (String) pd.get("update");
        if (update.equals("1")){
            //如果是1就升级。但是如果是红色预警就不可升级
            if (yujing.equals("红色预警")){
                return "此企业为红色预警，不可升级";
            }
            if (yujing.equals("黄色预警")){
                //如果传过来的是黄色预警，那就升级为橙色预警
                qyyjservice.upOrange(pd);
            }else if (yujing.equals("橙色预警")){
                //如果是橙色预警那就升级为红色
                qyyjservice.upRed(pd);
            }
        }
        //如果是2就是降级
        if (update.equals("2")){
            //如果是2降级的话黄色预警不可降级
            if(yujing.equals("黄色预警")){
                return "此企业为黄色预警，不可降级";
            }
            //如果是红色预警就会降级为橙色预警
            if (yujing.equals("红色预警")){
                qyyjservice.upOrange2(pd);
            }else if (yujing.equals("橙色预警")){
                //如果是橙色预警就会降级为黄色预警
                qyyjservice.upYellow2(pd);
            }
        }
        Map<String,Object> map = qypjService.getYujing(pd);
        return map;
    }
}
